Package by Component
『Clean Architecture』.icon 34章の流れ
PBLにしていると、
Serviceがpublicになっている
Repositoryもpublicになっている
だから、Controllerを作る人が、(Serviceをすっ飛ばして)Repositoryを使用できてしまう
だから、ComponentによるPackagingにして、
Serviceのみpublicにして、
Repositoryなどは非公開にする
そうすることで、Controllerの利用者はServiceを使うしかなくなる
なぜControllerは含めないか?
p.290~に書いている
外部からこのPackageにアクセスしたい時に、Controllerを経由するしかなく、
それが渋いケースがありうる(ありそう)
参考